package com.snpic.appaw.module.third.api.bjpt.dto.iSPolicyQuery;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author JiJun
 * @date 2025/9/19 19:21
 * @修改时间 2025/9/19 19:21
 * @description
 */

@Data
@Schema(description = "保单险别信息数据传输对象")
public class ISKindDTO {

    @Schema(description = "保单号", maxLength = 30)
    private String policyNo;

    @Schema(description = "分保单号", maxLength = 30)
    private String subPolicyNo;

    @Schema(description = "计划代码[详见码表]", maxLength = 4)
    private String planCode;

    @Schema(description = "险种代码[详见码表]", maxLength = 4)
    private String riskCode;

    @Schema(description = "险别代码[详见码表]", maxLength = 7)
    private String kindCode;

    @Schema(description = "险别名称", maxLength = 120)
    private String kindName;

    @Schema(description = "险别序号", example = "1")
    private BigDecimal itemKindNo;

    @Schema(description = "标的物序号", example = "1")
    private BigDecimal itemDetailNo;

    @Schema(description = "起保日期(YYYY-MM-DD)")
    private Date startDate;

    @Schema(description = "终保日期(YYYY-MM-DD)")
    private Date endDate;

    @Schema(description = "单位保险金额", example = "10000.00")
    private BigDecimal unitInsured;

    @Schema(description = "数量", example = "1")
    private BigDecimal quantity;

    @Schema(description = "玻璃险（玻璃类型）：1-国产2-进口3-国产（特殊材质）4-进口（特殊材质）", maxLength = 2)
    private String valueType;

    @Schema(description = "出入境险（区域范围）：1000- 1000km200- 200km500- 500km", maxLength = 10)
    private String unit;

    @Schema(description = "绝对免赔额0-无300- 300元500- 500元1000-1000元2000- 2000元", example = "300.00")
    private BigDecimal deductible;

    @Schema(description = "置换新车险（约定比例）：50-50%60-60%/指定专修厂险（浮动比例）", example = "0.5000")
    private BigDecimal deductibleRate;

    @Schema(description = "绝对免赔额系数", example = "0.100000")
    private BigDecimal franchise;

    @Schema(description = "基础保费", example = "500.00")
    private BigDecimal basePremium;

    @Schema(description = "基准保费", example = "450.00")
    private BigDecimal benchmarkPremium;

    @Schema(description = "费率", example = "0.050000")
    private BigDecimal rate;

    @Schema(description = "短期费率标志 1-日短期", maxLength = 1)
    private String shortRateFlag;

    @Schema(description = "短期费率", example = "0.0500")
    private BigDecimal shortRate;

    @Schema(description = "调整比例系数", example = "1.000000000")
    private BigDecimal adjustRate;

    @Schema(description = "折扣率", example = "0.900000000")
    private BigDecimal discount;

    @Schema(description = "保险金额", example = "100000.00")
    private BigDecimal sumInsured;

    @Schema(description = "毛保费", example = "500.00")
    private BigDecimal grossPremium;

    @Schema(description = "净保费", example = "450.00")
    private BigDecimal netPremium;

    @Schema(description = "承保保费", example = "450.00")
    private BigDecimal uwPremium;

    @Schema(description = "主附险标志：1-主险 2-附加险", maxLength = 2)
    private String kindInd;

    @Schema(description = "退保标志", maxLength = 2)
    private String SurrenderInd;

    @Schema(description = "特殊分保标志", maxLength = 1)
    private String reSpecialInd;

    @Schema(description = "是否计算保额标志 默认1", maxLength = 1)
    private String calculateInd;

    @Schema(description = "标的序号", example = "1")
    private BigDecimal itemNo;

    @Schema(description = "币别[详见码表]", maxLength = 3)
    private String currency;

    @Schema(description = "是否投保不计免赔", maxLength = 1)
    private String relatedInd;

    @Schema(description = "充电桩序号", example = "1")
    private Long chargerNo;

    @Schema(description = "是否共享主险保额", maxLength = 1)
    private String shareMIAmountFlag;
}